package map;

import java.util.ArrayList;
import java.util.TreeSet;

/**
 * @program: play-structure
 * @author: baichen
 * 力扣349，输出两个集合的交集，交集中的元素唯一
 **/
public class IntersectionOfArray {
    public int[] intersection(int[] nums1, int[] nums2) {
        //遍历数组1，并存入集合，去重
        TreeSet<Integer> treeSet = new TreeSet<>();
        for (int num : nums1) {
            treeSet.add(num);
        }
        //使用动态数组链表存放交集中的元素
        ArrayList<Integer> list = new ArrayList<>();
        for (int num : nums2) {
            if (treeSet.contains(num)) {
                list.add(num);
                treeSet.remove(num);    //找到交集的元素后，集合中要及时去掉这个元素，防止重复
            }
        }
        int[] result = new int[list.size()];    //返回交集数组
        for (int i = 0; i < list.size(); i++) {
            result[i] = list.get(i);
        }
        return result;
    }
}
